blob: 12a4dd159d82a1bbe70f8d826a78b7898a440833 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamanoba4b9282008-07-06 05:20:316<meta name="generator" content="AsciiDoc 8.2.5" />
Junio C Hamano1a4e8412005-12-27 08:17:237<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
Junio C Hamanoba4b9282008-07-06 05:20:3119a {
20 color: blue;
21 text-decoration: underline;
22}
23a:visited {
24 color: fuchsia;
25}
Junio C Hamano1a4e8412005-12-27 08:17:2326
27em {
28 font-style: italic;
29}
30
31strong {
32 font-weight: bold;
33}
34
35tt {
36 color: navy;
37}
38
39h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
45}
46
Junio C Hamanoba4b9282008-07-06 05:20:3147h1, h2, h3 {
Junio C Hamano1a4e8412005-12-27 08:17:2348 border-bottom: 2px solid silver;
49}
50h2 {
Junio C Hamano1a4e8412005-12-27 08:17:2351 padding-top: 0.5em;
52}
Junio C Hamanoba4b9282008-07-06 05:20:3153h3 {
54 float: left;
55}
56h3 + * {
57 clear: left;
58}
Junio C Hamano1a4e8412005-12-27 08:17:2359
60div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
63}
64
65hr {
66 border: 1px solid silver;
67}
68
69p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
72}
73
74pre {
75 padding: 0;
76 margin: 0;
77}
78
79span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
Junio C Hamanoba4b9282008-07-06 05:20:3183 font-size: 1.1em;
Junio C Hamano1a4e8412005-12-27 08:17:2384}
85span#email {
86}
87span#revision {
88 font-family: sans-serif;
89}
90
91div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
97}
98div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
101}
102div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
105}
106
107div#preamble,
108div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
114}
115div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
118}
119
120div.content { /* Block element content. */
121 padding: 0;
122}
123
124/* Block element titles. */
125div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
131}
132div.title + * {
133 margin-top: 0;
134}
135
136td div.title:first-child {
137 margin-top: 0.0em;
138}
139div.content div.title:first-child {
140 margin-top: 0.0em;
141}
142div.content + div.title {
143 margin-top: 0.0em;
144}
145
146div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
150}
151
Junio C Hamanoba4b9282008-07-06 05:20:31152div.listingblock {
153 margin-right: 0%;
154}
Junio C Hamano1a4e8412005-12-27 08:17:23155div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
159}
160
161div.quoteblock > div.content {
162 padding-left: 2.0em;
163}
Junio C Hamanoba4b9282008-07-06 05:20:31164
165div.attribution {
Junio C Hamano1a4e8412005-12-27 08:17:23166 text-align: right;
167}
Junio C Hamanoba4b9282008-07-06 05:20:31168div.verseblock + div.attribution {
169 text-align: left;
170}
Junio C Hamano1a4e8412005-12-27 08:17:23171
172div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
179}
180div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
183}
184
185div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
188}
189
190div.verseblock div.content {
191 white-space: pre;
192}
193
194div.imageblock div.content { padding-left: 0; }
195div.imageblock img { border: 1px solid silver; }
196span.image img { border-style: none; }
197
198dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
201}
202dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
206}
207dd > *:first-child {
208 margin-top: 0;
209}
210
211ul, ol {
212 list-style-position: outside;
213}
Junio C Hamanoba4b9282008-07-06 05:20:31214div.olist2 ol {
Junio C Hamano1a4e8412005-12-27 08:17:23215 list-style-type: lower-alpha;
216}
217
218div.tableblock > table {
Junio C Hamanoba4b9282008-07-06 05:20:31219 border: 3px solid #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23220}
221thead {
222 font-family: sans-serif;
223 font-weight: bold;
224}
225tfoot {
226 font-weight: bold;
227}
228
229div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
232}
Junio C Hamanoba4b9282008-07-06 05:20:31233div.hlist td {
234 padding-bottom: 5px;
235}
Junio C Hamano1a4e8412005-12-27 08:17:23236td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
240}
241td.hlist2 {
242 vertical-align: top;
243}
244
245@media print {
246 div#footer-badges { display: none; }
247}
Junio C Hamanoba4b9282008-07-06 05:20:31248
249div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
256}
257
258div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
261}
262div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
265}
266div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
269}
270div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
273}
274include1::./stylesheets/xhtml11-manpage.css[]
Junio C Hamano1a4e8412005-12-27 08:17:23275/* Workarounds for IE6's broken and incomplete CSS2. */
276
277div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
281}
282div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
287}
288
289div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
293}
294
295div.quoteblock-content {
296 padding-left: 2.0em;
297}
298
299div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
302}
Junio C Hamanoba4b9282008-07-06 05:20:31303
304/* IE6 sets dynamically generated links as visited. */
305div#toc a:visited { color: blue; }
Junio C Hamano1a4e8412005-12-27 08:17:23306</style>
307<title>git-log(1)</title>
308</head>
309<body>
310<div id="header">
311<h1>
312git-log(1) Manual Page
313</h1>
314<h2>NAME</h2>
315<div class="sectionbody">
316<p>git-log -
317 Show commit logs
318</p>
319</div>
320</div>
321<h2>SYNOPSIS</h2>
322<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:31323<div class="para"><p><em>git log</em> &lt;option&gt;&#8230;</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23324</div>
Junio C Hamanoba4b9282008-07-06 05:20:31325<h2 id="_description">DESCRIPTION</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23326<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:31327<div class="para"><p>Shows the commit logs.</p></div>
328<div class="para"><p>The command takes options applicable to the <em>git-rev-list</em>
Junio C Hamanoba7c8d82006-04-15 06:17:42329command to control what is shown and how, and options applicable to
Junio C Hamanoba4b9282008-07-06 05:20:31330the <em>git-diff-*</em> commands to control how the changes
331each commit introduces are shown.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23332</div>
Junio C Hamanoba4b9282008-07-06 05:20:31333<h2 id="_options">OPTIONS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23334<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:31335<div class="vlist"><dl>
Junio C Hamano1a4e8412005-12-27 08:17:23336<dt>
Junio C Hamano00b8b632007-12-07 09:50:49337-p
338</dt>
339<dd>
340<p>
341 Generate patch (see section on generating patches).
342
343</p>
344</dd>
345<dt>
346-u
347</dt>
348<dd>
349<p>
350 Synonym for "-p".
351</p>
352</dd>
353<dt>
354-U&lt;n&gt;
355</dt>
356<dd>
357<p>
358 Shorthand for "--unified=&lt;n&gt;".
359</p>
360</dd>
361<dt>
362--unified=&lt;n&gt;
363</dt>
364<dd>
365<p>
366 Generate diffs with &lt;n&gt; lines of context instead of
367 the usual three. Implies "-p".
368</p>
369</dd>
370<dt>
371--raw
372</dt>
373<dd>
374<p>
375 Generate the raw format.
376
377</p>
378</dd>
379<dt>
380--patch-with-raw
381</dt>
382<dd>
383<p>
384 Synonym for "-p --raw".
385</p>
386</dd>
387<dt>
388--stat[=width[,name-width]]
389</dt>
390<dd>
391<p>
392 Generate a diffstat. You can override the default
393 output width for 80-column terminal by "--stat=width".
394 The width of the filename part can be controlled by
395 giving another width to it separated by a comma.
396</p>
397</dd>
398<dt>
399--numstat
400</dt>
401<dd>
402<p>
403 Similar to --stat, but shows number of added and
404 deleted lines in decimal notation and pathname without
405 abbreviation, to make it more machine friendly. For
406 binary files, outputs two <tt>-</tt> instead of saying
407 <tt>0 0</tt>.
408</p>
409</dd>
410<dt>
411--shortstat
412</dt>
413<dd>
414<p>
415 Output only the last line of the --stat format containing total
416 number of modified files, as well as number of added and deleted
417 lines.
418</p>
419</dd>
420<dt>
Junio C Hamano6a45be92008-04-22 08:19:03421--dirstat[=limit]
422</dt>
423<dd>
424<p>
425 Output only the sub-directories that are impacted by a diff,
426 and to what degree they are impacted. You can override the
427 default cut-off in percent (3) by "--dirstat=limit". If you
428 want to enable "cumulative" directory statistics, you can use
429 the "--cumulative" flag, which adds up percentages recursively
430 even when they have been already reported for a sub-directory.
431</p>
432</dd>
433<dt>
Junio C Hamano00b8b632007-12-07 09:50:49434--summary
435</dt>
436<dd>
437<p>
438 Output a condensed summary of extended header information
439 such as creations, renames and mode changes.
440</p>
441</dd>
442<dt>
443--patch-with-stat
444</dt>
445<dd>
446<p>
447 Synonym for "-p --stat".
448
449</p>
450</dd>
451<dt>
452-z
453</dt>
454<dd>
455<p>
456 NUL-line termination on output. This affects the --raw
457 output field terminator. Also output from commands such
458 as "git-log" will be delimited with NUL between commits.
459</p>
460</dd>
461<dt>
462--name-only
463</dt>
464<dd>
465<p>
466 Show only names of changed files.
467</p>
468</dd>
469<dt>
470--name-status
471</dt>
472<dd>
473<p>
Junio C Hamanoa9aee782008-04-23 16:09:20474 Show only names and status of changed files. See the description
475 of the <tt>--diff-filter</tt> option on what the status letters mean.
Junio C Hamano00b8b632007-12-07 09:50:49476</p>
477</dd>
478<dt>
479--color
480</dt>
481<dd>
482<p>
483 Show colored diff.
484</p>
485</dd>
486<dt>
487--no-color
488</dt>
489<dd>
490<p>
491 Turn off colored diff, even when the configuration file
492 gives the default to color output.
493</p>
494</dd>
495<dt>
496--color-words
497</dt>
498<dd>
499<p>
500 Show colored word diff, i.e. color words which have changed.
501</p>
502</dd>
503<dt>
504--no-renames
505</dt>
506<dd>
507<p>
508 Turn off rename detection, even when the configuration
509 file gives the default to do so.
510</p>
511</dd>
512<dt>
513--check
514</dt>
515<dd>
516<p>
517 Warn if changes introduce trailing whitespace
Junio C Hamano3dac5042007-12-15 08:40:54518 or an indent that uses a space before a tab. Exits with
519 non-zero status if problems are found. Not compatible with
520 --exit-code.
Junio C Hamano00b8b632007-12-07 09:50:49521</p>
522</dd>
523<dt>
524--full-index
525</dt>
526<dd>
527<p>
528 Instead of the first handful characters, show full
529 object name of pre- and post-image blob on the "index"
530 line when generating a patch format output.
531</p>
532</dd>
533<dt>
534--binary
535</dt>
536<dd>
537<p>
538 In addition to --full-index, output "binary diff" that
539 can be applied with "git apply".
540</p>
541</dd>
542<dt>
543--abbrev[=&lt;n&gt;]
544</dt>
545<dd>
546<p>
547 Instead of showing the full 40-byte hexadecimal object
548 name in diff-raw format output and diff-tree header
549 lines, show only handful hexdigits prefix. This is
550 independent of --full-index option above, which controls
551 the diff-patch output format. Non default number of
552 digits can be specified with --abbrev=&lt;n&gt;.
553</p>
554</dd>
555<dt>
556-B
557</dt>
558<dd>
559<p>
560 Break complete rewrite changes into pairs of delete and create.
561</p>
562</dd>
563<dt>
564-M
565</dt>
566<dd>
567<p>
568 Detect renames.
569</p>
570</dd>
571<dt>
572-C
573</dt>
574<dd>
575<p>
576 Detect copies as well as renames. See also <tt>--find-copies-harder</tt>.
577</p>
578</dd>
579<dt>
580--diff-filter=[ACDMRTUXB*]
581</dt>
582<dd>
583<p>
584 Select only files that are Added (<tt>A</tt>), Copied (<tt>C</tt>),
585 Deleted (<tt>D</tt>), Modified (<tt>M</tt>), Renamed (<tt>R</tt>), have their
586 type (mode) changed (<tt>T</tt>), are Unmerged (<tt>U</tt>), are
587 Unknown (<tt>X</tt>), or have had their pairing Broken (<tt>B</tt>).
588 Any combination of the filter characters may be used.
589 When <tt>*</tt> (All-or-none) is added to the combination, all
590 paths are selected if there is any file that matches
591 other criteria in the comparison; if there is no file
592 that matches other criteria, nothing is selected.
593</p>
594</dd>
595<dt>
596--find-copies-harder
597</dt>
598<dd>
599<p>
600 For performance reasons, by default, <tt>-C</tt> option finds copies only
601 if the original file of the copy was modified in the same
602 changeset. This flag makes the command
603 inspect unmodified files as candidates for the source of
604 copy. This is a very expensive operation for large
605 projects, so use it with caution. Giving more than one
606 <tt>-C</tt> option has the same effect.
607</p>
608</dd>
609<dt>
610-l&lt;num&gt;
611</dt>
612<dd>
613<p>
614 -M and -C options require O(n^2) processing time where n
615 is the number of potential rename/copy targets. This
616 option prevents rename/copy detection from running if
617 the number of rename/copy targets exceeds the specified
618 number.
619</p>
620</dd>
621<dt>
622-S&lt;string&gt;
623</dt>
624<dd>
625<p>
626 Look for differences that contain the change in &lt;string&gt;.
627</p>
628</dd>
629<dt>
630--pickaxe-all
631</dt>
632<dd>
633<p>
634 When -S finds a change, show all the changes in that
635 changeset, not just the files that contain the change
636 in &lt;string&gt;.
637</p>
638</dd>
639<dt>
640--pickaxe-regex
641</dt>
642<dd>
643<p>
644 Make the &lt;string&gt; not a plain string but an extended POSIX
645 regex to match.
646</p>
647</dd>
648<dt>
649-O&lt;orderfile&gt;
650</dt>
651<dd>
652<p>
653 Output the patch in the order specified in the
654 &lt;orderfile&gt;, which has one shell glob pattern per line.
655</p>
656</dd>
657<dt>
658-R
659</dt>
660<dd>
661<p>
662 Swap two inputs; that is, show differences from index or
663 on-disk file to tree contents.
664</p>
665</dd>
666<dt>
Junio C Hamano24bc09a2008-02-28 00:27:44667--relative[=&lt;path&gt;]
668</dt>
669<dd>
670<p>
671 When run from a subdirectory of the project, it can be
672 told to exclude changes outside the directory and show
673 pathnames relative to it with this option. When you are
674 not in a subdirectory (e.g. in a bare repository), you
675 can name which subdirectory to make the output relative
676 to by giving a &lt;path&gt; as an argument.
677</p>
678</dd>
679<dt>
Junio C Hamano00b8b632007-12-07 09:50:49680--text
681</dt>
682<dd>
683<p>
684 Treat all files as text.
685</p>
686</dd>
687<dt>
688-a
689</dt>
690<dd>
691<p>
692 Shorthand for "--text".
693</p>
694</dd>
695<dt>
696--ignore-space-at-eol
697</dt>
698<dd>
699<p>
Junio C Hamano3a702342007-12-12 21:34:02700 Ignore changes in whitespace at EOL.
Junio C Hamano00b8b632007-12-07 09:50:49701</p>
702</dd>
703<dt>
704--ignore-space-change
705</dt>
706<dd>
707<p>
Junio C Hamano3a702342007-12-12 21:34:02708 Ignore changes in amount of whitespace. This ignores whitespace
709 at line end, and considers all other sequences of one or
710 more whitespace characters to be equivalent.
Junio C Hamano00b8b632007-12-07 09:50:49711</p>
712</dd>
713<dt>
714-b
715</dt>
716<dd>
717<p>
718 Shorthand for "--ignore-space-change".
719</p>
720</dd>
721<dt>
722--ignore-all-space
723</dt>
724<dd>
725<p>
Junio C Hamano3a702342007-12-12 21:34:02726 Ignore whitespace when comparing lines. This ignores
727 differences even if one line has whitespace where the other
Junio C Hamano00b8b632007-12-07 09:50:49728 line has none.
729</p>
730</dd>
731<dt>
732-w
733</dt>
734<dd>
735<p>
736 Shorthand for "--ignore-all-space".
737</p>
738</dd>
739<dt>
740--exit-code
741</dt>
742<dd>
743<p>
744 Make the program exit with codes similar to diff(1).
745 That is, it exits with 1 if there were differences and
746 0 means no differences.
747</p>
748</dd>
749<dt>
750--quiet
751</dt>
752<dd>
753<p>
754 Disable all output of the program. Implies --exit-code.
755</p>
756</dd>
757<dt>
758--ext-diff
759</dt>
760<dd>
761<p>
762 Allow an external diff helper to be executed. If you set an
763 external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need
764 to use this option with <a href="git-log.html">git-log(1)</a> and friends.
765</p>
766</dd>
767<dt>
768--no-ext-diff
769</dt>
770<dd>
771<p>
772 Disallow external diff drivers.
773</p>
774</dd>
Junio C Hamanoe27cbd22007-12-21 17:57:33775<dt>
Junio C Hamanodfccbb02008-05-26 01:16:14776--ignore-submodules
777</dt>
778<dd>
779<p>
780 Ignore changes to submodules in the diff generation.
781</p>
782</dd>
783<dt>
Junio C Hamanoe27cbd22007-12-21 17:57:33784--src-prefix=&lt;prefix&gt;
785</dt>
786<dd>
787<p>
788 Show the given source prefix instead of "a/".
789</p>
790</dd>
791<dt>
792--dst-prefix=&lt;prefix&gt;
793</dt>
794<dd>
795<p>
796 Show the given destination prefix instead of "b/".
797</p>
798</dd>
799<dt>
800--no-prefix
801</dt>
802<dd>
803<p>
804 Do not show any source or destination prefix.
805</p>
806</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31807</dl></div>
808<div class="para"><p>For more detailed explanation on these common options, see also
809<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>
810<div class="vlist"><dl>
Junio C Hamano0430e3a2007-05-15 03:13:17811<dt>
812-&lt;n&gt;
813</dt>
814<dd>
815<p>
816 Limits the number of commits to show.
817</p>
818</dd>
819<dt>
820&lt;since&gt;..&lt;until&gt;
821</dt>
822<dd>
823<p>
824 Show only commits between the named two commits. When
825 either &lt;since&gt; or &lt;until&gt; is omitted, it defaults to
826 <tt>HEAD</tt>, i.e. the tip of the current branch.
827 For a more complete list of ways to spell &lt;since&gt;
828 and &lt;until&gt;, see "SPECIFYING REVISIONS" section in
829 <a href="git-rev-parse.html">git-rev-parse(1)</a>.
830</p>
831</dd>
832<dt>
Junio C Hamano0430e3a2007-05-15 03:13:17833--decorate
834</dt>
835<dd>
836<p>
Junio C Hamanoee695f22007-06-21 00:35:36837 Print out the ref names of any commits that are shown.
838</p>
839</dd>
840<dt>
841--full-diff
842</dt>
843<dd>
844<p>
Junio C Hamano9e395072008-07-31 22:11:21845 Without this flag, "git log -p &lt;path&gt;&#8230;" shows commits that
Junio C Hamanoee695f22007-06-21 00:35:36846 touch the specified paths, and diffs about the same specified
847 paths. With this, the full diff is shown for commits that touch
Junio C Hamano9e395072008-07-31 22:11:21848 the specified paths; this means that "&lt;path&gt;&#8230;" limits only
Junio C Hamanoee695f22007-06-21 00:35:36849 commits, and doesn't limit diff for those commits.
Junio C Hamano0430e3a2007-05-15 03:13:17850</p>
851</dd>
852<dt>
Junio C Hamano235d53f2007-07-13 00:25:15853--follow
854</dt>
855<dd>
856<p>
857 Continue listing the history of a file beyond renames.
858</p>
859</dd>
860<dt>
Junio C Hamano024b6c62007-08-14 09:43:08861--log-size
862</dt>
863<dd>
864<p>
865 Before the log message print out its size in bytes. Intended
866 mainly for porcelain tools consumption. If git is unable to
867 produce a valid value size is set to zero.
868 Note that only message is considered, if also a diff is shown
869 its size is not included.
870</p>
871</dd>
872<dt>
Junio C Hamano9e395072008-07-31 22:11:21873&lt;path&gt;&#8230;
Junio C Hamano0430e3a2007-05-15 03:13:17874</dt>
875<dd>
876<p>
Junio C Hamano85c71572008-07-28 00:03:31877 Show only commits that affect any of the specified paths.
Junio C Hamano0430e3a2007-05-15 03:13:17878</p>
879</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31880</dl></div>
881<h3 id="_commit_formatting">Commit Formatting</h3><div style="clear:left"></div>
882<div class="vlist"><dl>
Junio C Hamanob0e02952008-01-19 08:02:00883<dt>
884--pretty[=<em>&lt;format&gt;</em>]
885</dt>
886<dd>
887<p>
888 Pretty-print the contents of the commit logs in a given format,
889 where <em>&lt;format&gt;</em> can be one of <em>oneline</em>, <em>short</em>, <em>medium</em>,
890 <em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:&lt;string&gt;</em>.
891 When omitted, the format defaults to <em>medium</em>.
892</p>
Junio C Hamanoba4b9282008-07-06 05:20:31893<div class="para"><p>Note: you can specify the default pretty format in the repository
894configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>
Junio C Hamanob0e02952008-01-19 08:02:00895</dd>
896<dt>
897--abbrev-commit
898</dt>
899<dd>
900<p>
901 Instead of showing the full 40-byte hexadecimal commit object
902 name, show only handful hexdigits prefix. Non default number of
903 digits can be specified with "--abbrev=&lt;n&gt;" (which also modifies
904 diff output, if it is displayed).
905</p>
Junio C Hamanoba4b9282008-07-06 05:20:31906<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for
907people using 80-column terminals.</p></div>
Junio C Hamanob0e02952008-01-19 08:02:00908</dd>
909<dt>
910--encoding[=&lt;encoding&gt;]
911</dt>
912<dd>
913<p>
914 The commit objects record the encoding used for the log message
915 in their encoding header; this option can be used to tell the
916 command to re-code the commit log message in the encoding
917 preferred by the user. For non plumbing commands this
918 defaults to UTF-8.
919</p>
920</dd>
921<dt>
922--relative-date
923</dt>
924<dd>
925<p>
926 Synonym for <tt>--date=relative</tt>.
927</p>
928</dd>
929<dt>
Junio C Hamanob713ff12008-05-24 01:12:30930--date={relative,local,default,iso,rfc,short}
Junio C Hamanob0e02952008-01-19 08:02:00931</dt>
932<dd>
933<p>
934 Only takes effect for dates shown in human-readable format, such
Junio C Hamanob713ff12008-05-24 01:12:30935 as when using "--pretty". <tt>log.date</tt> config variable sets a default
936 value for log command's --date option.
Junio C Hamanob0e02952008-01-19 08:02:00937</p>
Junio C Hamanoba4b9282008-07-06 05:20:31938<div class="para"><p><tt>--date=relative</tt> shows dates relative to the current time,
939e.g. "2 hours ago".</p></div>
940<div class="para"><p><tt>--date=local</tt> shows timestamps in user's local timezone.</p></div>
941<div class="para"><p><tt>--date=iso</tt> (or <tt>--date=iso8601</tt>) shows timestamps in ISO 8601 format.</p></div>
942<div class="para"><p><tt>--date=rfc</tt> (or <tt>--date=rfc2822</tt>) shows timestamps in RFC 2822
943format, often found in E-mail messages.</p></div>
944<div class="para"><p><tt>--date=short</tt> shows only date but not time, in <tt>YYYY-MM-DD</tt> format.</p></div>
945<div class="para"><p><tt>--date=default</tt> shows timestamps in the original timezone
946(either committer's or author's).</p></div>
Junio C Hamanob0e02952008-01-19 08:02:00947</dd>
948<dt>
Junio C Hamanob0e02952008-01-19 08:02:00949--parents
950</dt>
951<dd>
952<p>
953 Print the parents of the commit.
954</p>
955</dd>
956<dt>
Junio C Hamano46a38aa2008-07-14 03:13:27957--children
958</dt>
959<dd>
960<p>
961 Print the children of the commit.
962</p>
963</dd>
964<dt>
Junio C Hamanob0e02952008-01-19 08:02:00965--left-right
966</dt>
967<dd>
968<p>
969 Mark which side of a symmetric diff a commit is reachable from.
970 Commits from the left side are prefixed with <tt>&lt;</tt> and those from
971 the right with <tt>&gt;</tt>. If combined with <tt>--boundary</tt>, those
972 commits are prefixed with <tt>-</tt>.
973</p>
Junio C Hamanoba4b9282008-07-06 05:20:31974<div class="para"><p>For example, if you have this topology:</p></div>
Junio C Hamanob0e02952008-01-19 08:02:00975<div class="listingblock">
976<div class="content">
977<pre><tt> y---b---b branch B
978 / \ /
979 / .
980 / / \
981 o---x---a---a branch A</tt></pre>
982</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:31983<div class="para"><p>you would get an output line this:</p></div>
Junio C Hamanob0e02952008-01-19 08:02:00984<div class="listingblock">
985<div class="content">
986<pre><tt> $ git rev-list --left-right --boundary --pretty=oneline A...B
987
988 &gt;bbbbbbb... 3rd on b
989 &gt;bbbbbbb... 2nd on b
990 &lt;aaaaaaa... 3rd on a
991 &lt;aaaaaaa... 2nd on a
992 -yyyyyyy... 1st on b
993 -xxxxxxx... 1st on a</tt></pre>
994</div></div>
995</dd>
Junio C Hamanofeeb1be2008-05-22 00:53:35996<dt>
997--graph
998</dt>
999<dd>
1000<p>
1001 Draw a text-based graphical representation of the commit history
1002 on the left hand side of the output. This may cause extra lines
1003 to be printed in between commits, in order for the graph history
1004 to be drawn properly.
1005</p>
Junio C Hamanoba4b9282008-07-06 05:20:311006<div class="para"><p>This implies the <em>--topo-order</em> option by default, but the
1007<em>--date-order</em> option may also be specified.</p></div>
Junio C Hamanofeeb1be2008-05-22 00:53:351008</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311009</dl></div>
1010<h3 id="_diff_formatting">Diff Formatting</h3><div style="clear:left"></div>
1011<div class="para"><p>Below are listed options that control the formatting of diff output.
Junio C Hamanob0e02952008-01-19 08:02:001012Some of them are specific to <a href="git-rev-list.html">git-rev-list(1)</a>, however other diff
Junio C Hamanoba4b9282008-07-06 05:20:311013options may be given. See <a href="git-diff-files.html">git-diff-files(1)</a> for more options.</p></div>
1014<div class="vlist"><dl>
Junio C Hamanob0e02952008-01-19 08:02:001015<dt>
1016-c
1017</dt>
1018<dd>
1019<p>
1020 This flag changes the way a merge commit is displayed. It shows
1021 the differences from each of the parents to the merge result
1022 simultaneously instead of showing pairwise diff between a parent
1023 and the result one at a time. Furthermore, it lists only files
1024 which were modified from all parents.
1025</p>
1026</dd>
1027<dt>
1028--cc
1029</dt>
1030<dd>
1031<p>
1032 This flag implies the <em>-c</em> options and further compresses the
Junio C Hamanoccc2f762008-07-24 04:03:331033 patch output by omitting uninteresting hunks whose contents in
1034 the parents have only two variants and the merge result picks
1035 one of them without modification.
Junio C Hamanob0e02952008-01-19 08:02:001036</p>
1037</dd>
1038<dt>
1039-r
1040</dt>
1041<dd>
1042<p>
1043 Show recursive diffs.
1044</p>
1045</dd>
1046<dt>
1047-t
1048</dt>
1049<dd>
1050<p>
1051 Show the tree objects in the diff output. This implies <em>-r</em>.
1052</p>
1053</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311054</dl></div>
1055<h3 id="_commit_limiting">Commit Limiting</h3><div style="clear:left"></div>
1056<div class="para"><p>Besides specifying a range of commits that should be listed using the
Junio C Hamanob0e02952008-01-19 08:02:001057special notations explained in the description, additional commit
Junio C Hamanoba4b9282008-07-06 05:20:311058limiting may be applied.</p></div>
1059<div class="vlist"><dl>
Junio C Hamanob0e02952008-01-19 08:02:001060<dt>
Junio C Hamanoeb415992008-06-08 22:49:471061-n <em>number</em>
1062</dt>
1063<dt>
1064--max-count=<em>number</em>
Junio C Hamanob0e02952008-01-19 08:02:001065</dt>
1066<dd>
1067<p>
1068 Limit the number of commits output.
1069</p>
1070</dd>
1071<dt>
1072--skip=<em>number</em>
1073</dt>
1074<dd>
1075<p>
1076 Skip <em>number</em> commits before starting to show the commit output.
1077</p>
1078</dd>
1079<dt>
Junio C Hamanoeb415992008-06-08 22:49:471080--since=<em>date</em>
1081</dt>
1082<dt>
1083--after=<em>date</em>
Junio C Hamanob0e02952008-01-19 08:02:001084</dt>
1085<dd>
1086<p>
1087 Show commits more recent than a specific date.
1088</p>
1089</dd>
1090<dt>
Junio C Hamanoeb415992008-06-08 22:49:471091--until=<em>date</em>
1092</dt>
1093<dt>
1094--before=<em>date</em>
Junio C Hamanob0e02952008-01-19 08:02:001095</dt>
1096<dd>
1097<p>
1098 Show commits older than a specific date.
1099</p>
1100</dd>
1101<dt>
Junio C Hamanoeb415992008-06-08 22:49:471102--author=<em>pattern</em>
1103</dt>
1104<dt>
1105--committer=<em>pattern</em>
Junio C Hamanob0e02952008-01-19 08:02:001106</dt>
1107<dd>
1108<p>
1109 Limit the commits output to ones with author/committer
1110 header lines that match the specified pattern (regular expression).
1111</p>
1112</dd>
1113<dt>
1114--grep=<em>pattern</em>
1115</dt>
1116<dd>
1117<p>
1118 Limit the commits output to ones with log message that
1119 matches the specified pattern (regular expression).
1120</p>
1121</dd>
1122<dt>
Junio C Hamanoeb415992008-06-08 22:49:471123-i
1124</dt>
1125<dt>
1126--regexp-ignore-case
Junio C Hamanob0e02952008-01-19 08:02:001127</dt>
1128<dd>
1129<p>
1130 Match the regexp limiting patterns without regard to letters case.
1131</p>
1132</dd>
1133<dt>
Junio C Hamanoeb415992008-06-08 22:49:471134-E
1135</dt>
1136<dt>
1137--extended-regexp
Junio C Hamanob0e02952008-01-19 08:02:001138</dt>
1139<dd>
1140<p>
1141 Consider the limiting patterns to be extended regular expressions
1142 instead of the default basic regular expressions.
1143</p>
1144</dd>
1145<dt>
Junio C Hamanoeb415992008-06-08 22:49:471146-F
1147</dt>
1148<dt>
1149--fixed-strings
Junio C Hamano24bc09a2008-02-28 00:27:441150</dt>
1151<dd>
1152<p>
1153 Consider the limiting patterns to be fixed strings (don't interpret
1154 pattern as a regular expression).
1155</p>
1156</dd>
1157<dt>
Junio C Hamanob0e02952008-01-19 08:02:001158--remove-empty
1159</dt>
1160<dd>
1161<p>
1162 Stop when a given path disappears from the tree.
1163</p>
1164</dd>
1165<dt>
1166--full-history
1167</dt>
1168<dd>
1169<p>
1170 Show also parts of history irrelevant to current state of a given
1171 path. This turns off history simplification, which removed merges
1172 which didn't change anything at all at some child. It will still actually
1173 simplify away merges that didn't change anything at all into either
1174 child.
1175</p>
1176</dd>
1177<dt>
1178--no-merges
1179</dt>
1180<dd>
1181<p>
1182 Do not print commits with more than one parent.
1183</p>
1184</dd>
1185<dt>
1186--first-parent
1187</dt>
1188<dd>
1189<p>
1190 Follow only the first parent commit upon seeing a merge
1191 commit. This option can give a better overview when
1192 viewing the evolution of a particular topic branch,
1193 because merges into a topic branch tend to be only about
1194 adjusting to updated upstream from time to time, and
1195 this option allows you to ignore the individual commits
1196 brought in to your history by such a merge.
1197</p>
1198</dd>
1199<dt>
1200--not
1201</dt>
1202<dd>
1203<p>
1204 Reverses the meaning of the <em>&#94;</em> prefix (or lack thereof)
1205 for all following revision specifiers, up to the next <em>--not</em>.
1206</p>
1207</dd>
1208<dt>
1209--all
1210</dt>
1211<dd>
1212<p>
1213 Pretend as if all the refs in <tt>$GIT_DIR/refs/</tt> are listed on the
1214 command line as <em>&lt;commit&gt;</em>.
1215</p>
1216</dd>
1217<dt>
Junio C Hamanob0e02952008-01-19 08:02:001218--cherry-pick
1219</dt>
1220<dd>
1221<p>
1222 Omit any commit that introduces the same change as
1223 another commit on the "other side" when the set of
1224 commits are limited with symmetric difference.<br />
1225For example, if you have two branches, <tt>A</tt> and <tt>B</tt>, a usual way
1226to list all commits on only one side of them is with
1227<tt>--left-right</tt>, like the example above in the description of
1228that option. It however shows the commits that were cherry-picked
1229from the other branch (for example, "3rd on b" may be cherry-picked
1230from branch A). With this option, such pairs of commits are
1231excluded from the output.
1232</p>
1233</dd>
1234<dt>
Junio C Hamanoeb415992008-06-08 22:49:471235-g
1236</dt>
1237<dt>
1238--walk-reflogs
Junio C Hamanob0e02952008-01-19 08:02:001239</dt>
1240<dd>
1241<p>
1242 Instead of walking the commit ancestry chain, walk
1243 reflog entries from the most recent one to older ones.
1244 When this option is used you cannot specify commits to
1245 exclude (that is, <em>&#94;commit</em>, <em>commit1..commit2</em>,
1246 nor <em>commit1&#8230;commit2</em> notations cannot be used).<br />
1247With <em>--pretty</em> format other than oneline (for obvious reasons),
1248this causes the output to have two extra lines of information
1249taken from the reflog. By default, <em>commit@{Nth}</em> notation is
1250used in the output. When the starting commit is specified as
1251instead. Under <em>--pretty=oneline</em>, the commit message is
1252prefixed with this information on the same line.
1253</p>
Junio C Hamanoba4b9282008-07-06 05:20:311254<div class="para"><p>Cannot be combined with <em>--reverse</em>.
1255See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>
Junio C Hamanob0e02952008-01-19 08:02:001256</dd>
1257<dt>
1258--merge
1259</dt>
1260<dd>
1261<p>
1262 After a failed merge, show refs that touch files having a
1263 conflict and don't exist on all heads to merge.
1264</p>
1265</dd>
1266<dt>
1267--boundary
1268</dt>
1269<dd>
1270<p>
1271 Output uninteresting commits at the boundary, which are usually
1272 not shown.
1273</p>
1274</dd>
1275<dt>
Junio C Hamanoeb415992008-06-08 22:49:471276--dense
1277</dt>
1278<dt>
1279--sparse
Junio C Hamanob0e02952008-01-19 08:02:001280</dt>
1281<dd>
1282<p>
1283When optional paths are given, the default behaviour (<em>--dense</em>) is to
1284only output commits that changes at least one of them, and also ignore
1285merges that do not touch the given paths.
1286</p>
Junio C Hamanoba4b9282008-07-06 05:20:311287<div class="para"><p>Use the <em>--sparse</em> flag to makes the command output all eligible commits
Junio C Hamanob0e02952008-01-19 08:02:001288(still subject to count and age limitation), but apply merge
Junio C Hamanoba4b9282008-07-06 05:20:311289simplification nevertheless.</p></div>
Junio C Hamanob0e02952008-01-19 08:02:001290</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311291</dl></div>
1292<h3 id="_commit_ordering">Commit Ordering</h3><div style="clear:left"></div>
1293<div class="para"><p>By default, the commits are shown in reverse chronological order.</p></div>
1294<div class="vlist"><dl>
Junio C Hamanob0e02952008-01-19 08:02:001295<dt>
1296--topo-order
1297</dt>
1298<dd>
1299<p>
1300 This option makes them appear in topological order (i.e.
1301 descendant commits are shown before their parents).
1302</p>
1303</dd>
1304<dt>
1305--date-order
1306</dt>
1307<dd>
1308<p>
1309 This option is similar to <em>--topo-order</em> in the sense that no
1310 parent comes before all of its children, but otherwise things
1311 are still ordered in the commit timestamp order.
1312</p>
1313</dd>
1314<dt>
1315--reverse
1316</dt>
1317<dd>
1318<p>
1319 Output the commits in reverse order.
1320 Cannot be combined with <em>--walk-reflogs</em>.
1321</p>
1322</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311323</dl></div>
1324<h3 id="_object_traversal">Object Traversal</h3><div style="clear:left"></div>
1325<div class="para"><p>These options are mostly targeted for packing of git repositories.</p></div>
1326<div class="vlist"><dl>
Junio C Hamanob0e02952008-01-19 08:02:001327<dt>
1328--objects
1329</dt>
1330<dd>
1331<p>
1332 Print the object IDs of any object referenced by the listed
1333 commits. <em>--objects foo ^bar</em> thus means "send me
1334 all object IDs which I need to download if I have the commit
1335 object <em>bar</em>, but not <em>foo</em>".
1336</p>
1337</dd>
1338<dt>
1339--objects-edge
1340</dt>
1341<dd>
1342<p>
1343 Similar to <em>--objects</em>, but also print the IDs of excluded
1344 commits prefixed with a "-" character. This is used by
1345 <a href="git-pack-objects.html">git-pack-objects(1)</a> to build "thin" pack, which records
1346 objects in deltified form based on objects contained in these
1347 excluded commits to reduce network traffic.
1348</p>
1349</dd>
1350<dt>
1351--unpacked
1352</dt>
1353<dd>
1354<p>
1355 Only useful with <em>--objects</em>; print the object IDs that are not
1356 in packs.
1357</p>
1358</dd>
1359<dt>
1360--no-walk
1361</dt>
1362<dd>
1363<p>
1364 Only show the given revs, but do not traverse their ancestors.
1365</p>
1366</dd>
1367<dt>
1368--do-walk
1369</dt>
1370<dd>
1371<p>
1372 Overrides a previous --no-walk.
1373</p>
1374</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311375</dl></div>
Junio C Hamano0430e3a2007-05-15 03:13:171376</div>
Junio C Hamanoba4b9282008-07-06 05:20:311377<h2 id="_pretty_formats">PRETTY FORMATS</h2>
Junio C Hamano0430e3a2007-05-15 03:13:171378<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:311379<div class="para"><p>If the commit is a merge, and if the pretty-format
Junio C Hamano0430e3a2007-05-15 03:13:171380is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is
1381inserted before the <em>Author:</em> line. This line begins with
1382"Merge: " and the sha1s of ancestral commits are printed,
1383separated by spaces. Note that the listed commits may not
1384necessarily be the list of the <strong>direct</strong> parent commits if you
1385have limited your view of history: for example, if you are
1386only interested in changes related to a certain directory or
Junio C Hamanoba4b9282008-07-06 05:20:311387file.</p></div>
1388<div class="para"><p>Here are some additional details for each format:</p></div>
1389<div class="ilist"><ul>
Junio C Hamanoa340aaa2006-11-23 02:47:331390<li>
1391<p>
1392<em>oneline</em>
1393</p>
1394<div class="literalblock">
1395<div class="content">
1396<pre><tt>&lt;sha1&gt; &lt;title line&gt;</tt></pre>
1397</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311398<div class="para"><p>This is designed to be as compact as possible.</p></div>
Junio C Hamanoa340aaa2006-11-23 02:47:331399</li>
1400<li>
1401<p>
1402<em>short</em>
1403</p>
1404<div class="literalblock">
1405<div class="content">
1406<pre><tt>commit &lt;sha1&gt;
1407Author: &lt;author&gt;</tt></pre>
1408</div></div>
1409<div class="literalblock">
1410<div class="content">
1411<pre><tt>&lt;title line&gt;</tt></pre>
1412</div></div>
1413</li>
1414<li>
1415<p>
1416<em>medium</em>
1417</p>
1418<div class="literalblock">
1419<div class="content">
1420<pre><tt>commit &lt;sha1&gt;
1421Author: &lt;author&gt;
Junio C Hamanoba4b9282008-07-06 05:20:311422Date: &lt;author date&gt;</tt></pre>
Junio C Hamanoa340aaa2006-11-23 02:47:331423</div></div>
1424<div class="literalblock">
1425<div class="content">
1426<pre><tt>&lt;title line&gt;</tt></pre>
1427</div></div>
1428<div class="literalblock">
1429<div class="content">
1430<pre><tt>&lt;full commit message&gt;</tt></pre>
1431</div></div>
1432</li>
1433<li>
1434<p>
1435<em>full</em>
1436</p>
1437<div class="literalblock">
1438<div class="content">
1439<pre><tt>commit &lt;sha1&gt;
1440Author: &lt;author&gt;
1441Commit: &lt;committer&gt;</tt></pre>
1442</div></div>
1443<div class="literalblock">
1444<div class="content">
1445<pre><tt>&lt;title line&gt;</tt></pre>
1446</div></div>
1447<div class="literalblock">
1448<div class="content">
1449<pre><tt>&lt;full commit message&gt;</tt></pre>
1450</div></div>
1451</li>
1452<li>
1453<p>
1454<em>fuller</em>
1455</p>
1456<div class="literalblock">
1457<div class="content">
1458<pre><tt>commit &lt;sha1&gt;
1459Author: &lt;author&gt;
Junio C Hamanoba4b9282008-07-06 05:20:311460AuthorDate: &lt;author date&gt;
Junio C Hamanoa340aaa2006-11-23 02:47:331461Commit: &lt;committer&gt;
Junio C Hamanoba4b9282008-07-06 05:20:311462CommitDate: &lt;committer date&gt;</tt></pre>
Junio C Hamanoa340aaa2006-11-23 02:47:331463</div></div>
1464<div class="literalblock">
1465<div class="content">
1466<pre><tt>&lt;title line&gt;</tt></pre>
1467</div></div>
1468<div class="literalblock">
1469<div class="content">
1470<pre><tt>&lt;full commit message&gt;</tt></pre>
1471</div></div>
1472</li>
1473<li>
1474<p>
1475<em>email</em>
1476</p>
1477<div class="literalblock">
1478<div class="content">
1479<pre><tt>From &lt;sha1&gt; &lt;date&gt;
1480From: &lt;author&gt;
Junio C Hamanoba4b9282008-07-06 05:20:311481Date: &lt;author date&gt;
Junio C Hamanoa340aaa2006-11-23 02:47:331482Subject: [PATCH] &lt;title line&gt;</tt></pre>
1483</div></div>
1484<div class="literalblock">
1485<div class="content">
Junio C Hamano0430e3a2007-05-15 03:13:171486<pre><tt>&lt;full commit message&gt;</tt></pre>
Junio C Hamanoa340aaa2006-11-23 02:47:331487</div></div>
1488</li>
1489<li>
1490<p>
1491<em>raw</em>
1492</p>
Junio C Hamanoba4b9282008-07-06 05:20:311493<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as
Junio C Hamanoa340aaa2006-11-23 02:47:331494stored in the commit object. Notably, the SHA1s are
1495displayed in full, regardless of whether --abbrev or
1496--no-abbrev are used, and <em>parents</em> information show the
1497true parent commits, without taking grafts nor history
Junio C Hamanoba4b9282008-07-06 05:20:311498simplification into account.</p></div>
Junio C Hamanoa340aaa2006-11-23 02:47:331499</li>
Junio C Hamanoa3fd83c2007-03-02 10:34:361500<li>
1501<p>
1502<em>format:</em>
1503</p>
Junio C Hamanoba4b9282008-07-06 05:20:311504<div class="para"><p>The <em>format:</em> format allows you to specify which information
Junio C Hamanoa3fd83c2007-03-02 10:34:361505you want to show. It works a little bit like printf format,
1506with the notable exception that you get a newline with <em>%n</em>
Junio C Hamanoba4b9282008-07-06 05:20:311507instead of <em>\n</em>.</p></div>
1508<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was &gt;&gt;%s&lt;&lt;%n"</em>
1509would show something like this:</p></div>
Junio C Hamano0430e3a2007-05-15 03:13:171510<div class="listingblock">
1511<div class="content">
1512<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago
1513The title was &gt;&gt;t4119: test autocomputing -p&lt;n&gt; for traditional diff input.&lt;&lt;
1514</tt></pre>
1515</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311516<div class="para"><p>The placeholders are:</p></div>
1517<div class="ilist"><ul>
Junio C Hamanoa3fd83c2007-03-02 10:34:361518<li>
1519<p>
1520<em>%H</em>: commit hash
1521</p>
1522</li>
1523<li>
1524<p>
1525<em>%h</em>: abbreviated commit hash
1526</p>
1527</li>
1528<li>
1529<p>
1530<em>%T</em>: tree hash
1531</p>
1532</li>
1533<li>
1534<p>
1535<em>%t</em>: abbreviated tree hash
1536</p>
1537</li>
1538<li>
1539<p>
1540<em>%P</em>: parent hashes
1541</p>
1542</li>
1543<li>
1544<p>
1545<em>%p</em>: abbreviated parent hashes
1546</p>
1547</li>
1548<li>
1549<p>
1550<em>%an</em>: author name
1551</p>
1552</li>
1553<li>
1554<p>
Junio C Hamanof5a93622008-07-16 03:23:571555<em>%aN</em>: author name (respecting .mailmap)
1556</p>
1557</li>
1558<li>
1559<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361560<em>%ae</em>: author email
1561</p>
1562</li>
1563<li>
1564<p>
1565<em>%ad</em>: author date
1566</p>
1567</li>
1568<li>
1569<p>
1570<em>%aD</em>: author date, RFC2822 style
1571</p>
1572</li>
1573<li>
1574<p>
1575<em>%ar</em>: author date, relative
1576</p>
1577</li>
1578<li>
1579<p>
1580<em>%at</em>: author date, UNIX timestamp
1581</p>
1582</li>
1583<li>
1584<p>
Junio C Hamano02f130b2007-07-14 08:26:561585<em>%ai</em>: author date, ISO 8601 format
1586</p>
1587</li>
1588<li>
1589<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361590<em>%cn</em>: committer name
1591</p>
1592</li>
1593<li>
1594<p>
Junio C Hamanof5a93622008-07-16 03:23:571595<em>%cN</em>: committer name (respecting .mailmap)
1596</p>
1597</li>
1598<li>
1599<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361600<em>%ce</em>: committer email
1601</p>
1602</li>
1603<li>
1604<p>
1605<em>%cd</em>: committer date
1606</p>
1607</li>
1608<li>
1609<p>
1610<em>%cD</em>: committer date, RFC2822 style
1611</p>
1612</li>
1613<li>
1614<p>
1615<em>%cr</em>: committer date, relative
1616</p>
1617</li>
1618<li>
1619<p>
1620<em>%ct</em>: committer date, UNIX timestamp
1621</p>
1622</li>
1623<li>
1624<p>
Junio C Hamano02f130b2007-07-14 08:26:561625<em>%ci</em>: committer date, ISO 8601 format
1626</p>
1627</li>
1628<li>
1629<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361630<em>%e</em>: encoding
1631</p>
1632</li>
1633<li>
1634<p>
1635<em>%s</em>: subject
1636</p>
1637</li>
1638<li>
1639<p>
1640<em>%b</em>: body
1641</p>
1642</li>
1643<li>
1644<p>
1645<em>%Cred</em>: switch color to red
1646</p>
1647</li>
1648<li>
1649<p>
1650<em>%Cgreen</em>: switch color to green
1651</p>
1652</li>
1653<li>
1654<p>
1655<em>%Cblue</em>: switch color to blue
1656</p>
1657</li>
1658<li>
1659<p>
1660<em>%Creset</em>: reset color
1661</p>
1662</li>
1663<li>
1664<p>
Junio C Hamanod9e0e5d2007-04-14 16:22:041665<em>%m</em>: left, right or boundary mark
1666</p>
1667</li>
1668<li>
1669<p>
Junio C Hamanoa3fd83c2007-03-02 10:34:361670<em>%n</em>: newline
1671</p>
Junio C Hamano0430e3a2007-05-15 03:13:171672</li>
Junio C Hamanob78d2592008-04-09 09:39:081673<li>
1674<p>
1675<em>%x00</em>: print a byte from a hex code
1676</p>
1677</li>
Junio C Hamanoba4b9282008-07-06 05:20:311678</ul></div>
Junio C Hamanoa3fd83c2007-03-02 10:34:361679</li>
Junio C Hamano6fb124c2008-06-13 10:04:011680<li>
1681<p>
1682<em>tformat:</em>
1683</p>
Junio C Hamanoba4b9282008-07-06 05:20:311684<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it
Junio C Hamano6fb124c2008-06-13 10:04:011685provides "terminator" semantics instead of "separator" semantics. In
1686other words, each commit has the message terminator character (usually a
1687newline) appended, rather than a separator placed between entries.
1688This means that the final entry of a single-line format will be properly
1689terminated with a new line, just as the "oneline" format does.
Junio C Hamanoba4b9282008-07-06 05:20:311690For example:</p></div>
Junio C Hamano6fb124c2008-06-13 10:04:011691<div class="listingblock">
1692<div class="content">
1693<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \
1694 | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
16954da45be
16967134973 -- NO NEWLINE
1697
1698$ git log -2 --pretty=tformat:%h 4da45bef \
1699 | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
17004da45be
17017134973</tt></pre>
1702</div></div>
1703</li>
Junio C Hamanoba4b9282008-07-06 05:20:311704</ul></div>
Junio C Hamano1a4e8412005-12-27 08:17:231705</div>
Junio C Hamanoba4b9282008-07-06 05:20:311706<h2 id="_generating_patches_with_p">Generating patches with -p</h2>
Junio C Hamano00b8b632007-12-07 09:50:491707<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:311708<div class="para"><p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
Junio C Hamano00b8b632007-12-07 09:50:491709with a <em>-p</em> option, "git diff" without the <em>--raw</em> option, or
1710"git log" with the "-p" option, they
1711do not produce the output described above; instead they produce a
1712patch file. You can customize the creation of such patches via the
Junio C Hamanoba4b9282008-07-06 05:20:311713GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p></div>
1714<div class="para"><p>What the -p option produces is slightly different from the traditional
1715diff format.</p></div>
1716<div class="olist"><ol>
Junio C Hamano00b8b632007-12-07 09:50:491717<li>
1718<p>
1719It is preceded with a "git diff" header, that looks like
1720 this:
1721</p>
1722<div class="literalblock">
1723<div class="content">
1724<pre><tt>diff --git a/file1 b/file2</tt></pre>
1725</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311726<div class="para"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is
Junio C Hamano00b8b632007-12-07 09:50:491727involved. Especially, even for a creation or a deletion,
Junio C Hamanoba4b9282008-07-06 05:20:311728<tt>/dev/null</tt> is <em>not</em> used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p></div>
1729<div class="para"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the
Junio C Hamano00b8b632007-12-07 09:50:491730name of the source file of the rename/copy and the name of
Junio C Hamanoba4b9282008-07-06 05:20:311731the file that rename/copy produces, respectively.</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491732</li>
1733<li>
1734<p>
1735It is followed by one or more extended header lines:
1736</p>
1737<div class="literalblock">
1738<div class="content">
1739<pre><tt>old mode &lt;mode&gt;
1740new mode &lt;mode&gt;
1741deleted file mode &lt;mode&gt;
1742new file mode &lt;mode&gt;
1743copy from &lt;path&gt;
1744copy to &lt;path&gt;
1745rename from &lt;path&gt;
1746rename to &lt;path&gt;
1747similarity index &lt;number&gt;
1748dissimilarity index &lt;number&gt;
1749index &lt;hash&gt;..&lt;hash&gt; &lt;mode&gt;</tt></pre>
1750</div></div>
1751</li>
1752<li>
1753<p>
1754TAB, LF, double quote and backslash characters in pathnames
1755 are represented as <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt> and <tt>\\</tt>, respectively.
1756 If there is need for such substitution then the whole
1757 pathname is put in double quotes.
1758</p>
1759</li>
Junio C Hamanoba4b9282008-07-06 05:20:311760</ol></div>
1761<div class="para"><p>The similarity index is the percentage of unchanged lines, and
Junio C Hamano00b8b632007-12-07 09:50:491762the dissimilarity index is the percentage of changed lines. It
1763is a rounded down integer, followed by a percent sign. The
1764similarity index value of 100% is thus reserved for two equal
1765files, while 100% dissimilarity means that no line from the old
Junio C Hamanoba4b9282008-07-06 05:20:311766file made it into the new one.</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491767</div>
Junio C Hamanoba4b9282008-07-06 05:20:311768<h2 id="_combined_diff_format">combined diff format</h2>
Junio C Hamano00b8b632007-12-07 09:50:491769<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:311770<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or
Junio C Hamano00b8b632007-12-07 09:50:491771<em>--cc</em> option to produce <em>combined diff</em>. For showing a merge commit
1772with "git log -p", this is the default format.
Junio C Hamanoba4b9282008-07-06 05:20:311773A <em>combined diff</em> format looks like this:</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491774<div class="listingblock">
1775<div class="content">
1776<pre><tt>diff --combined describe.c
1777index fabadb8,cc95eb0..4866510
1778--- a/describe.c
1779+++ b/describe.c
1780@@@ -98,20 -98,12 +98,20 @@@
1781 return (a_date &gt; b_date) ? -1 : (a_date == b_date) ? 0 : 1;
1782 }
1783
1784- static void describe(char *arg)
1785 -static void describe(struct commit *cmit, int last_one)
1786++static void describe(char *arg, int last_one)
1787 {
1788 + unsigned char sha1[20];
1789 + struct commit *cmit;
1790 struct commit_list *list;
1791 static int initialized = 0;
1792 struct commit_name *n;
1793
1794 + if (get_sha1(arg, sha1) &lt; 0)
1795 + usage(describe_usage);
1796 + cmit = lookup_commit_reference(sha1);
1797 + if (!cmit)
1798 + usage(describe_usage);
1799 +
1800 if (!initialized) {
1801 initialized = 1;
1802 for_each_ref(get_name);</tt></pre>
1803</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311804<div class="olist"><ol>
Junio C Hamano00b8b632007-12-07 09:50:491805<li>
1806<p>
1807It is preceded with a "git diff" header, that looks like
1808 this (when <em>-c</em> option is used):
1809</p>
1810<div class="literalblock">
1811<div class="content">
1812<pre><tt>diff --combined file</tt></pre>
1813</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311814<div class="para"><p>or like this (when <em>--cc</em> option is used):</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491815<div class="literalblock">
1816<div class="content">
Junio C Hamano0868a302008-07-22 09:20:441817<pre><tt>diff --cc file</tt></pre>
Junio C Hamano00b8b632007-12-07 09:50:491818</div></div>
1819</li>
1820<li>
1821<p>
1822It is followed by one or more extended header lines
1823 (this example shows a merge with two parents):
1824</p>
1825<div class="literalblock">
1826<div class="content">
1827<pre><tt>index &lt;hash&gt;,&lt;hash&gt;..&lt;hash&gt;
1828mode &lt;mode&gt;,&lt;mode&gt;..&lt;mode&gt;
1829new file mode &lt;mode&gt;
1830deleted file mode &lt;mode&gt;,&lt;mode&gt;</tt></pre>
1831</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311832<div class="para"><p>The <tt>mode &lt;mode&gt;,&lt;mode&gt;..&lt;mode&gt;</tt> line appears only if at least one of
Junio C Hamano00b8b632007-12-07 09:50:491833the &lt;mode&gt; is different from the rest. Extended headers with
1834information about detected contents movement (renames and
1835copying detection) are designed to work with diff of two
Junio C Hamanoba4b9282008-07-06 05:20:311836&lt;tree-ish&gt; and are not used by combined diff format.</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491837</li>
1838<li>
1839<p>
1840It is followed by two-line from-file/to-file header
1841</p>
1842<div class="literalblock">
1843<div class="content">
1844<pre><tt>--- a/file
1845+++ b/file</tt></pre>
1846</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311847<div class="para"><p>Similar to two-line header for traditional <em>unified</em> diff
Junio C Hamano00b8b632007-12-07 09:50:491848format, <tt>/dev/null</tt> is used to signal created or deleted
Junio C Hamanoba4b9282008-07-06 05:20:311849files.</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491850</li>
1851<li>
1852<p>
1853Chunk header format is modified to prevent people from
1854 accidentally feeding it to <tt>patch -p1</tt>. Combined diff format
1855 was created for review of merge commit changes, and was not
1856 meant for apply. The change is similar to the change in the
1857 extended <em>index</em> header:
1858</p>
1859<div class="literalblock">
1860<div class="content">
1861<pre><tt>@@@ &lt;from-file-range&gt; &lt;from-file-range&gt; &lt;to-file-range&gt; @@@</tt></pre>
1862</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311863<div class="para"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk
1864header for combined diff format.</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491865</li>
Junio C Hamanoba4b9282008-07-06 05:20:311866</ol></div>
1867<div class="para"><p>Unlike the traditional <em>unified</em> diff format, which shows two
Junio C Hamano00b8b632007-12-07 09:50:491868files A and B with a single column that has <tt>-</tt> (minus &#8212;
1869appears in A but removed in B), <tt>+</tt> (plus &#8212; missing in A but
1870added to B), or <tt>" "</tt> (space &#8212; unchanged) prefix, this format
1871compares two or more files file1, file2,&#8230; with one file X, and
1872shows how X differs from each of fileN. One column for each of
1873fileN is prepended to the output line to note how X's line is
Junio C Hamanoba4b9282008-07-06 05:20:311874different from it.</p></div>
1875<div class="para"><p>A <tt>-</tt> character in the column N means that the line appears in
Junio C Hamano00b8b632007-12-07 09:50:491876fileN but it does not appear in the result. A <tt>+</tt> character
1877in the column N means that the line appears in the last file,
1878and fileN does not have that line (in other words, the line was
Junio C Hamanoba4b9282008-07-06 05:20:311879added, from the point of view of that parent).</p></div>
1880<div class="para"><p>In the above example output, the function signature was changed
Junio C Hamano00b8b632007-12-07 09:50:491881from both files (hence two <tt>-</tt> removals from both file1 and
Junio C Hamanoba4b9282008-07-06 05:20:311882file2, plus <tt><tt>+</tt> to mean one line that was added does not appear
Junio C Hamano00b8b632007-12-07 09:50:491883in either file1 nor file2). Also two other lines are the same
Junio C Hamanoba4b9282008-07-06 05:20:311884from file1 but do not appear in file2 (hence prefixed with <tt> </tt></tt>).</p></div>
1885<div class="para"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a
Junio C Hamano00b8b632007-12-07 09:50:491886merge commit with the merge result (i.e. file1..fileN are the
1887parents). When shown by <tt>git diff-files -c</tt>, it compares the
1888two unresolved merge parents with the working tree file
1889(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
Junio C Hamanoba4b9282008-07-06 05:20:311890"their version").</p></div>
Junio C Hamano00b8b632007-12-07 09:50:491891</div>
Junio C Hamanoba4b9282008-07-06 05:20:311892<h2 id="_examples">Examples</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231893<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:311894<div class="vlist"><dl>
Junio C Hamano1a4e8412005-12-27 08:17:231895<dt>
1896git log --no-merges
1897</dt>
1898<dd>
1899<p>
1900 Show the whole commit history, but skip any merges
1901</p>
1902</dd>
1903<dt>
1904git log v2.6.12.. include/scsi drivers/scsi
1905</dt>
1906<dd>
1907<p>
1908 Show all commits since version <em>v2.6.12</em> that changed any file
1909 in the include/scsi or drivers/scsi subdirectories
1910</p>
1911</dd>
1912<dt>
Junio C Hamano1bb569e2006-05-05 23:14:251913git log --since="2 weeks ago" -- gitk
Junio C Hamano1a4e8412005-12-27 08:17:231914</dt>
1915<dd>
1916<p>
1917 Show the changes during the last two weeks to the file <em>gitk</em>.
1918 The "--" is necessary to avoid confusion with the <strong>branch</strong> named
1919 <em>gitk</em>
1920</p>
1921</dd>
Junio C Hamanoba7c8d82006-04-15 06:17:421922<dt>
Junio C Hamano7d9e9bd2007-08-29 07:31:471923git log --name-status release..test
Junio C Hamanoba7c8d82006-04-15 06:17:421924</dt>
1925<dd>
1926<p>
1927 Show the commits that are in the "test" branch but not yet
1928 in the "release" branch, along with the list of paths
1929 each commit modifies.
1930</p>
1931</dd>
Junio C Hamano235d53f2007-07-13 00:25:151932<dt>
1933git log --follow builtin-rev-list.c
1934</dt>
1935<dd>
1936<p>
1937 Shows the commits that changed builtin-rev-list.c, including
1938 those commits that occurred before the file was given its
1939 present name.
1940</p>
1941</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311942</dl></div>
Junio C Hamano1a4e8412005-12-27 08:17:231943</div>
Junio C Hamanoba4b9282008-07-06 05:20:311944<h2 id="_discussion">Discussion</h2>
Junio C Hamano775a0f42006-12-31 01:19:141945<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:311946<div class="para"><p>At the core level, git is character encoding agnostic.</p></div>
1947<div class="ilist"><ul>
Junio C Hamano775a0f42006-12-31 01:19:141948<li>
1949<p>
1950The pathnames recorded in the index and in the tree objects
1951 are treated as uninterpreted sequences of non-NUL bytes.
1952 What readdir(2) returns are what are recorded and compared
1953 with the data git keeps track of, which in turn are expected
1954 to be what lstat(2) and creat(2) accepts. There is no such
1955 thing as pathname encoding translation.
1956</p>
1957</li>
1958<li>
1959<p>
1960The contents of the blob objects are uninterpreted sequence
1961 of bytes. There is no encoding translation at the core
1962 level.
1963</p>
1964</li>
1965<li>
1966<p>
1967The commit log messages are uninterpreted sequence of non-NUL
1968 bytes.
1969</p>
1970</li>
Junio C Hamanoba4b9282008-07-06 05:20:311971</ul></div>
1972<div class="para"><p>Although we encourage that the commit log messages are encoded
Junio C Hamano775a0f42006-12-31 01:19:141973in UTF-8, both the core and git Porcelain are designed not to
1974force UTF-8 on projects. If all participants of a particular
1975project find it more convenient to use legacy encodings, git
1976does not forbid it. However, there are a few things to keep in
Junio C Hamanoba4b9282008-07-06 05:20:311977mind.</p></div>
1978<div class="olist"><ol>
Junio C Hamano775a0f42006-12-31 01:19:141979<li>
1980<p>
Junio C Hamanoba4b9282008-07-06 05:20:311981<em>git-commit-tree</em> (hence, <em>git-commit</em> which uses it) issues
Junio C Hamano14b76482008-01-05 10:32:261982 a warning if the commit log message given to it does not look
Junio C Hamano775a0f42006-12-31 01:19:141983 like a valid UTF-8 string, unless you explicitly say your
1984 project uses a legacy encoding. The way to say this is to
Junio C Hamano35bb3f62007-02-19 05:35:531985 have i18n.commitencoding in <tt>.git/config</tt> file, like this:
Junio C Hamano775a0f42006-12-31 01:19:141986</p>
1987<div class="listingblock">
1988<div class="content">
Junio C Hamano35bb3f62007-02-19 05:35:531989<pre><tt>[i18n]
Junio C Hamano775a0f42006-12-31 01:19:141990 commitencoding = ISO-8859-1</tt></pre>
1991</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:311992<div class="para"><p>Commit objects created with the above setting record the value
Junio C Hamano35bb3f62007-02-19 05:35:531993of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to
Junio C Hamano775a0f42006-12-31 01:19:141994help other people who look at them later. Lack of this header
Junio C Hamanoba4b9282008-07-06 05:20:311995implies that the commit log message is encoded in UTF-8.</p></div>
Junio C Hamano775a0f42006-12-31 01:19:141996</li>
1997<li>
1998<p>
Junio C Hamanoba4b9282008-07-06 05:20:311999<em>git-log</em>, <em>git-show</em> and friends looks at the <tt>encoding</tt>
Junio C Hamano775a0f42006-12-31 01:19:142000 header of a commit object, and tries to re-code the log
2001 message into UTF-8 unless otherwise specified. You can
2002 specify the desired output encoding with
Junio C Hamano35bb3f62007-02-19 05:35:532003 <tt>i18n.logoutputencoding</tt> in <tt>.git/config</tt> file, like this:
Junio C Hamano775a0f42006-12-31 01:19:142004</p>
2005<div class="listingblock">
2006<div class="content">
Junio C Hamano35bb3f62007-02-19 05:35:532007<pre><tt>[i18n]
Junio C Hamano775a0f42006-12-31 01:19:142008 logoutputencoding = ISO-8859-1</tt></pre>
2009</div></div>
Junio C Hamanoba4b9282008-07-06 05:20:312010<div class="para"><p>If you do not have this configuration variable, the value of
2011<tt>i18n.commitencoding</tt> is used instead.</p></div>
Junio C Hamano775a0f42006-12-31 01:19:142012</li>
Junio C Hamanoba4b9282008-07-06 05:20:312013</ol></div>
2014<div class="para"><p>Note that we deliberately chose not to re-code the commit log
Junio C Hamano775a0f42006-12-31 01:19:142015message when a commit is made to force UTF-8 at the commit
2016object level, because re-coding to UTF-8 is not necessarily a
Junio C Hamanoba4b9282008-07-06 05:20:312017reversible operation.</p></div>
Junio C Hamano775a0f42006-12-31 01:19:142018</div>
Junio C Hamanoba4b9282008-07-06 05:20:312019<h2 id="_author">Author</h2>
Junio C Hamano1a4e8412005-12-27 08:17:232020<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:312021<div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:232022</div>
Junio C Hamanoba4b9282008-07-06 05:20:312023<h2 id="_documentation">Documentation</h2>
Junio C Hamano1a4e8412005-12-27 08:17:232024<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:312025<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:232026</div>
Junio C Hamanoba4b9282008-07-06 05:20:312027<h2 id="_git">GIT</h2>
Junio C Hamano1a4e8412005-12-27 08:17:232028<div class="sectionbody">
Junio C Hamanoba4b9282008-07-06 05:20:312029<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:232030</div>
2031<div id="footer">
2032<div id="footer-text">
Junio C Hamano9e395072008-07-31 22:11:212033Last updated 2008-07-31 22:10:20 UTC
Junio C Hamano1a4e8412005-12-27 08:17:232034</div>
2035</div>
2036</body>
2037</html>